#include <header.h>

void func1(int sig_value){
    printf("sigint \n");
    sleep(5);
    printf("sigint over \n");
}
void func2(int sig_value){
    printf("sigquit \n");
}


int main(int argc, char *argv[]){
    signal(SIGINT, func1);
    signal(SIGQUIT, func2);

    sigset_t set1, set2;
    sigemptyset(&set1);
    sigaddset(&set1, SIGINT);
    // 全局屏蔽 sigint，既：屏蔽该信号
    sigprocmask(SIG_BLOCK, &set1, NULL);

    sigemptyset(&set2);
    sigaddset(&set2, SIGQUIT);  
    // 过来sigquit会阻塞掉，过来sigint会唤醒进程
    // 作用：用set替换(暂时)进程的信号掩码
    sigsuspend(&set2);

    //>>>>>>>>>>>>>>恢复后还是屏蔽sigint,捕捉sigquit<<<<<<<<<<<<<<<<<<<<


    
    while (1){
        sleep(1);
        printf(" -- \n");
    }
    return 0;
}